<?php

/**
 * \file
 * Classe `RefBox`.
 */

namespace pilar\EntityFormMembers /* \cond */ ; /* \endcond */
{

/**
 * Boite de sélection sur référence.
 *
 * \since 22/09/2008
 * \author Matthieu OVIEDO <matthieu.oviedo@gmail.com>
 */
class RefBox extends \pilar\SimpleFormMembers\SelectBox {

protected function loadDefaultParams() {
 parent::loadDefaultParams();

 $this->params->define(array(
  'entity' => '',  // Entité référencée.
  'where' => null // Fonction de génération d'une expression WHERE.
 ));
}

public function guiDomNode($domDoc) {
 // Construction de la collection d'options à ajouter :
  $entity = $this->get('entity');
  $titleMemberName = $entity->titleMember->get('name');
  $options = $entity->newCollection();
  if($this->get('where') != null) {
   $options->where(call_user_func($this->get('where'), $options));
  }
/*  $options->orderBy(
   $options->member($titleMemberName)
  ); */
 // Ajout des options :
  foreach($options as $option) {
   $this->addOption(
    $option->id->get(),
    $option->member($titleMemberName)->get()
   );
  }
 // Appel de la fonction d'affichage parentale :
  return parent::guiDomNode($domDoc);
}


public function precedingFiles() {
 return array(
  $this->get('entity')->touchFile()
 );
}


} // Class.

} // Namespace.

?>
